package com.xiaoyilin.fast;

import org.apache.kafka.common.serialization.Serializer;

import java.util.Map;

/**
 * 自定义序列化器
 *
 * 生产者使用的序列化器和消费者使用的反序列化器要一一对应
 * org.apache.kafka.common.serialization.Serializer
 *
 * org.apache.kafka.common.serialization.DoubleSerializer
 * org.apache.kafka.common.serialization.ShortSerializer
 * org.apache.kafka.common.serialization.ByteArraySerializer
 * org.apache.kafka.common.serialization.IntegerSerializer
 * org.apache.kafka.common.serialization.UUIDSerializer
 * org.apache.kafka.common.serialization.ByteBufferSerializer
 * org.apache.kafka.common.serialization.FloatSerializer
 * org.apache.kafka.common.serialization.LongSerializer
 * org.apache.kafka.common.serialization.BytesSerializer
 *
 * 其它序列化通用工具Avro JSON  Thrift  ProtoBuf
 *
 */
public class MyKafkaSerializer implements Serializer{

    @Override
    public void configure(Map map, boolean b) {
        /**
         *  配置当前类
         *  主要用来确定编码类型模式UTF-8
         *  创建KafkaProducer调用
         */
    }

    @Override
    public byte[] serialize(String s, Object o) {
        /**
         *  实现序列化
         *  字符串转为字节
         */
        return new byte[0];
    }

    @Override
    public void close() {
        //注意幂等性可能被KafkaProducer调用多次
    }

}
